package com.sky.vo;
/**
 * 1.当前模块名：sky-pojo
 *   模块作用：存放视图对象(Value Object)，用于Controller层返回给前端的结构化数据
 * 2.当前包名：com.sky.vo
 *   包作用：封装Controller层返回的视图数据模型（Value Object）
 * 3.当前类名：UserLoginVO
 *   类作用：用户登录成功返回的视图对象
 */
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * UserLoginVO：用户登录响应视图对象
 * 知识点说明：
 * 1. 最小化返回原则：仅包含必要字段（避免敏感信息泄露）
 * 2. 身份标识设计：提供用户ID和openid双重标识（支持多场景使用）
 * 3. 认证令牌管理：token字段作为后续请求的凭证（JWT格式）
 * 4. 安全传输要求：token需HTTPS传输防止中间人攻击
 * 5. 序列化支持：实现Serializable接口支持分布式缓存
 * 6. 微信生态集成：openid作为微信用户唯一标识
 * 7. 令牌时效控制：token应设置合理有效期（通常2小时）
 * 8. 轻量化设计：减少网络传输数据量
 * 9. 构建模式：@Builder支持流畅API创建对象
 * 10. 无状态设计：服务端不存储会话状态
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserLoginVO implements Serializable {

    private Long id;
    private String openid;
    private String token;

}
